﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//void main()
//{
//	char c1, c2;
//		c1 = 97; c2 = 98;
//		printf("c1=%c  c2=%c\n",c1,c2);
//		printf("c1=%d  c2=%d\n",c1,c2);
//		c1 = c1 - 32; c2 = c2 - 32;
//		printf("c1=%c  c2=%c\n",c1,c2);
//		printf("c1=%d  c2=%d\n",c1,c2);
//}
//编写程序：任意输入三个数，计算并输出它们的和以及这三个数的平均值。
//int main()
//{
//	float a = 0, b = 0, c = 0;
//	scanf("%f %f %f", &a, &b, &c);
//	float sum = a+b+c;//求三个数的和
//	float average = sum / 3.0;
//	printf("三个数的和为：%f\n三个数的平均数为：%f", sum, average);
//	return 0;
//}
//编写一个程序，要求输入一个ASCII码值（如66），然后输出相应的字符（难度中）。
//int main()
//{
//	int ascll = 0;
//	scanf("%d", &ascll);
//	printf("%c", ascll);
//	return 0;
//}
//编写一个程序，读入一个浮点数，并分别以小数形式和指数形式打印。输出应如同下面格式（实际显示的指数位数也许应系统而不同）：（难度中）
//The input is 21.290000 or 2.129000e+001.

//编写程序：输入三个1位整数，输出由其组成的一个整数。例如：输入2、4、7 输出：247。
//int main()
//{
//	int a, b, c;
//	scanf("%d %d %d", &a, &b, &c);
//	printf("%d%d%d", a, b, c);
//	return 0;
//}
//从键盘输入一个大写字母，要求改用小写字母输出。
//int main()
//{
//	char ch = 0;
//	scanf("%c", &ch);
//	if (ch >= 65 && ch <= 90)
//	{
//		printf("%c", ch + 32);
//	}
//	else
//	{
//		printf("输入的不是大写字母");
//	}
//	return 0;
//}
//void main()
//{
//    int a = 5;
//    int b = 1;
//    int h = 6;
//    float s = 0;
//    printf("a=%d,b=%d,h=%d,s=%f", a, b, h, s = (a + b) * (h / 2.0));
//}
//编写程序：输入三个数字字符，输出由它们组成的一个整数。例如：输入‘2’、‘5’、‘7’，输出257
//int main()
//{
//	char a = 0, b = 0, c = 0;
//	scanf("%c %c %c", &a, &b, &c);
//	printf("%d%d%d", a - '0', b - '0', c - '0');
//	return 0;
//}
//输入一个实数x ，计算y = x^2，输出x，y。
//int main()
//{
//	float x = 0, y = 0;
//	scanf("%f", &x);
//	printf("x=%f y=%f", x, y = x * x);
//}
////编写程序：已知匀加速运动的初速度为10m / s，加速度为2m / s^2，求20s以后的速度、20s内走过的路程及平均速度，写出程序。
//int main()
//{
//	int v = 10;
//	int a = 2;
//	int t = 20;
//	int v1 = v+ t *a;
//	float s = v*t + (1 / 2.0) * a * t * t;
//	float average = s / t;
//	printf("20s以后的速度为%d 20s内走过的路程为%f 平均速度为%f", v1, s, average);
//	return 0;
//}
//1个水分子的质量约为3.0 * 10 ^-23g，1夸脱水约有950g。编写一个程序，要求输入水的夸脱数，然后显示这么多水中包含多少个水分子。
//int main()
//{
//	double m = 3.0e-23;
//	int a = 950;
//	float k = 0;
//	scanf("%f", &k);
//	float count = (k * a) / m;
//	printf("%f", count);
//	return 0;
//}
////void main()
//{
//	int i, m, n;
//	i = 5;
//	printf("before i++ i=%d\n", i);
//	m = i++;
//	printf("after i++ i=%d\n", i);
//	n = ++i;
//	printf("after ++i i=%d  m=%d  n=%d\n", i, m, n);
//}
//int main()
//{
//	double a = 0;
//	scanf("%lf", &a);
//	printf("The intput is %lf or %le", a, a);
//	return 0;
//}
//#include <stdio.h>
//void main()
//{
//	int a = 3;
//	printf("%d\n", a + (a -= a * a));
//}
//#include <stdio.h>
//void main()
//{
//	int i, j, m, n;
//	i = 8;
//	j = 10;
//	m = ++i; 
//	n = j++;
//	printf("%d, %d, %d, %d\n", i, j, m, n);
//}
//int main()
//{
//	char arr[100];
//	scanf("%s", arr);
//	printf("Hello,%s!", arr);
//	return 0;
////}
//#include <stdio.h>  
//
//int main() {
//    char str[100]; // 定义一个字符数组，用于存储输入的字符串  
//    printf("请输入一个字符串：");
//    scanf("%s", str); // 从标准输入读取字符串，并保存到字符数组中  
//    printf("你输入的字符串是：%s\n", str); // 打印输入的字符串  
//    return 0;
//}
////int main()
//{
//	int k = 6, x = 12;
//	printf("%d %d", x%=k+k%5,k);
//	return 0;
//}
//#include<stdio.h>
//int maxdistance(int x, int y, int t) {
//	int herodistance = 0;
//	int solderdistance = 0;
//	int n = 0;
//	while (herodistance <= solderdistance)
//	{
//		int time = n + t;
//		herodistance = y * n;
//		solderdistance = x * time;
//		n++;
//	}
//	return herodistance;
//}
//int main() {
//	int x, y, t;
//	scanf("%d %d %d", &x, &y, &t);
//	int distance = maxdistance(x, y, t);
//	printf("%d\n", distance);
//	return 0;
//}
//int main()
//{
//	int arr[5];
//	int num;
//	int arr[num];
//}
//int main()
//{
//	int x;
//	int i;
//	int count[10];
//	for (i = 0; i < 10; i++)
//	{
//		count[i] = 0;
//	}
//	scanf("%d", &x);
//	while (x != -1)
//	{
//		if (x >= 0 && x <= 9)
//		{
//			count[x]++;
//		}
//		scanf("%d", &x);
//	}
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d:%d\n", i, count[i]);
//	}
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	float a=0, b=0, c=0, d=0, e=0;
//	scanf("%f %f %f %f", a, b, c, d);
//	e = a * b * (1 + b) * c / ((1 + b) * c - 1);
//	printf("%.2f\n", e);
//	//put your codes here.
//	return 0;
//}
//#include<math.h>
//#define S(a,b, c) (a+b+c)/2
//#define AREA(s,a,b,c)  sqrt(s*(s-a)*(s-b)*(s-c))
//int main()
//{
//	int a = 0, b = 0, c = 0;
//	scanf("%d %d %d", &a, &b, &c);
//	int s = S(a, b, c);
//	int area = AREA(s, a, b, c);
//	printf("%d %d", s, area);
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
////69.660782
//int main()
//{
//	int d = 300000;
//	int p = 6000;
//	float r = 0.01;
//	float a = log10(p / (p - d * r));
//	float b = log10(1 + r);
//	float m = a / b;
//	/*m = (m * 10 + 1) / 10.0;*/
//	printf("%.1f", m);
//	return 0;
//}
//void test()
//{
//	int* p = (int*)malloc(100);
//	if (NULL != p)
//	{
//		*p = 20;
//	}
//
//}
//
//int main()
//{
//	test();
//	while (1);
//}
//void GetMemory(char** p)
//{
//	*p = (char**)malloc(100);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str);
//	strcpy(str, "hello world");
//	printf(str);
//}
//int main()
//{
//	Test();
//	return 0;
//}
//char* GetMemory(void)
//{
//	char p[] = "hello world";
//	return p;
//}
//void Test(void)
//{
//	char* str = NULL;
//	str = GetMemory();
//	printf(str);
//}
//int main()
//{
//	Test();
//	return 0;
//}
//void GetMemory(char** p, int num)
//{
//	*p = (char*)malloc(num);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str, 100);
//	strcpy(str, "hello");
//	printf(str);
//}
//int main()
//{
//	Test();
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	
//	int min = 0;
//	int year = 0;
//	float day = 0;
//	scanf("%d", &min);
//	if (min - 525600 > 0)
//	{
//		year = min / 525600;
//		int r = min - year * 525600;
//		day = ((r / 1440.0) * 10 + 5) / 10;
//	}
//	else
//	{
//		if(min%1440==0)
//			{
//			day = min / 1440.0;
//			}
//		else
//		{
//			day = ((min / 1440.0) * 10 + 5) / 10;
//		}
//	}
//	printf("%d年%0.f天", year, day);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	float r1 = 5.0 / 35;
//	float M = 0;
//	scanf("%f", &M);
//	float r2 = 350 * 0.001;
//	float num = r1 * M*1000 / r2;
//	num = (int)num;
//	printf("喝%.0f罐汽水杀死你!", num);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//    float h = 0, m = 0;
//    int y = 0;
//    char s = 0;
//    scanf("%f %f %d %c", &h, &m, &y, &s);
//    float BMR = 0;
//    if (s == 'M')
//    {
//        BMR = 655 + (4.3 * m * 2.2) + (4.7 * h * 0.39) - (4.7 * y);
//    }
//    if (s == ' F')
//    {
//        BMR = 66 + (6.3 * m * 2.2) + (12.9 * h * 0.39) - (6.8 * y);
//    }
//    float num = BMR / 230.0;
//    printf("%.2f", num);
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//	double r1 = 0.0036;
//	double r2 = 0.0225;
//	double r3 = 0.0198;
//	double m = 0;
//	scanf("%lf", &m);
//	double p1 = m + m * r1;
//	double p2 = m + m * r2;
//	double p4 = m + m * r3 / 2;//计算上半年的本息和
//	double p3 = p4 + p4 * r3 / 2;
//	printf("p1=%lf\np2=%lf\np3=%lf\n", p1, p2, p3); 
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//
//int main()
//{
//	double M, r, m1, m2, M1;
//	scanf("%lf %lf %lf %lf", &M, &r, &m1, &m2);
//	M1 = M * r * (pow(1 + r, m1) - pow(1 + r, m2 - 1)) / pow(1 + r, m1 - 1);
//	printf("%.2lf", M1);
//	return 0;
//}
//#define _crt_secure_no_warnings
//#include<stdio.h>
//
//int progressionjudgment(float moneyamount) {
//	if (moneyamount <= 500)return 1;
//	else if (moneyamount > 500 && moneyamount <= 2000)return 2;
//	else if (moneyamount > 2000 && moneyamount <= 5000)return 3;
//	else if (moneyamount > 5000 && moneyamount <= 20000)return 4;
//	else if (moneyamount > 20000 && moneyamount <= 40000)return 5;
//	else if (moneyamount > 40000 && moneyamount <= 60000)return 6;
//	else if (moneyamount > 60000 && moneyamount <= 80000)return 7;
//	else if (moneyamount > 80000 && moneyamount <= 100000)return 8;
//	else return 9;
//}
//
//int main()
//{
//	float workicm, endicm, medicm, unempicm, housfnd;
//	scanf("%f %f %f %f %f", &workicm, &endicm, &medicm, &unempicm, &housfnd);
//	float payableamount = workicm - endicm - medicm - unempicm - housfnd - 1600;
//	float totalpay = 0;
//	switch (progressionjudgment(payableamount))
//	{
//	case 1:
//		totalpay = payableamount * 0.05;
//		break;
//	case 2:
//		totalpay = payableamount * 0.10 - 25;
//		break;
//	case 3:
//		totalpay = payableamount * 0.15 - 125;
//		break;
//	case 4:
//		totalpay = payableamount * 0.20 - 375;
//		break;
//	case 5:
//		totalpay = payableamount * 0.25 - 1375;
//		break;
//	case 6:
//		totalpay = payableamount * 0.30 - 3375;
//		break;
//	case 7:
//		totalpay = payableamount * 0.35 - 6375;
//		break;
//	case 8:
//		totalpay = payableamount * 0.40 - 10375;
//		break;
//	case 9:
//		totalpay = payableamount * 0.45 - 15375;
//		break;
//	}
//	printf("%.2f", totalpay);
//}
//#include <stdio.h>
//int main()
//{
//	int a = 12, n = 5;
//	printf("%d\n", a += a);
//	printf("%d\n", a -= a);
//	printf("%d\n", a *= 2 + 3);
//	printf("%d", a %= (n %= 2));
//	printf("%d\n", a /= a + a);
//	printf("%d\n", a += a -= a *= a);
//
//	return 0;
//}
////int main()
//{
//	int a = 0;
//	printf("%d", 5 / a);
//	return 0;
//}
//#include<stdio.h>
//int two()
//
//{
//	printf("two\n");
//	return 0;
//}
//int main()
//{
//	printf("starting now:\n");
//	int one_three();
//	int two();
//	one_three();
//	printf("done!");
//	return 0;
//}
//int one_three()
//{
//	printf("one\n");
//	two();
//	printf("three\n");
//	return 0;
//}
//#include <stdio.h>
//int main(void)
//{
//    int x, y, t, s;
////    scanf("%d%d%d", &x, &y, &t);
////    s = (x * y * t) / (y - x);
////    printf("%d", s);
////    return 0;
////}
//int main()
//{
//	int x = 10, y = 20, t = 30;
//	int n = x * y * t / (y - x);
//	printf("%d\n", n);
//	n = y * (x * t / (y - x));
//	printf("%d\n", n);
//	return 0;
//}
//#/*include<stdio.h>
//int main()
//{
//    float pay1=0, price=0;
//   int hundred=0, fifty=0, ten=0, five=0, two=0, one=0, coin=0, fpoint=0, point=0;
//    scanf("%f %f", &pay1, &price);
//    float pay = pay1 - price;
//    if (pay >= 100)
//    {
//        hundred = pay / 100;
//        pay -= hundred * 100;
//    }
//    if (pay >= 50)
//    {
//        fifty = pay / 50;
//        pay -= fifty * 50;
//    }
//    if (pay >= 10)
//    {
//        ten = pay / 10;
//        pay -= ten * 10;
//    }
//    if (pay >= 5)
//    {
//        five = pay / 5;
//        pay -= five * 5;
//    }
//    if (pay >= 2)
//    {
//        two = pay / 2;
//        pay -= two * 2;
//    }
//    if (pay >= 1)
//    {
//        one = pay / 1;
//        pay -= one * 1;
//    }
//    if (pay >= 0.1)
//    {
//        coin = pay / 0.1;
//        pay -= coin * 0.1;
//    }
//    if (pay >= 0.05)
//    {
//        fpoint = pay / 0.05;
//        pay -= fpoint * 0.05;
//    }
//    pay = (pay * 100 + 0.5)/100;
//    if (pay >= 0.01)
//    {
//        point = pay / 0.01;
//        pay -= point * 0.01;
//    }
//    printf("100元:%d 50元:%d 10元:%d 5元:%d 2元:%d 1元:%d 1角:%d 5分:%d 1分:%d", hundred, fifty, ten, five, two, one, coin, fpoint, point);
//    return 0;*/
////}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <math.h>
//
//void findChange(float paidAmount, float itemPrice) {
//    int change_cents = round((paidAmount - itemPrice) * 100.0); //将计算结果转为以分为单位 并用round函数四舍五入取整 使用int代替float
//    int denominations[] = { 10000, 5000, 1000, 500, 200, 100, 10, 5, 1 ,0 };
//    int counts[9] = { 0 };
//    int p = 0;
//    int i = 0;
//    while (change_cents > 0) {    //计算原理：找零金额用 减去 当前小于找零金额的最大面额 并记录某一面额数量 + 1
//        if (change_cents >= denominations[i]) {
//            counts[i]++;
//            change_cents -= denominations[i];
//        }
//        else {
//            i++;
//        }
//    }
//    printf("100元:%d 50元:%d 10元:%d 5元:%d 2元:%d 1元:%d 1角:%d 5分:%d 1分:%d\n",
//        counts[0], counts[1], counts[2], counts[3], counts[4],
//        counts[5], counts[6], counts[7], counts[8]);
//}
//
//int main() {
//    float paidAmount, itemPrice;
//    scanf("%f %f", &paidAmount, &itemPrice);
//    findChange(paidAmount, itemPrice);
//}
//100元:0 50元:1 10元:1 5元:0 2元:1 1元:0 1角:6 5分:0 1分:1
//int Is_leapyear(int x)
//{
//	if (x % 4 == 0 && x % 100 != 0)
//	{
//		return 1;
//	}
//	else if (x % 400 == 0)
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int main()
//{
//	int input = 0;
//	scanf("%d", &input);
//	int Ytime = input / 10000 - 2024;//计算年份差
//	int flag = Is_leapyear(input / 10000);
//	int arr1[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//存放平年月份天数的数组
//	int arr2[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//存放平年月份天数的数组
//	int Mtime = (input % 10000) / 100;
//	if(Mtime>)
//	
//
//}
//int Is_leapyear(int x)//判断平年还是闰年，返回对应的flag
//{
//	if (x % 4 == 0 && x % 100 != 0)
//	{
//		return 1;
//	}
//	else if (x % 400 == 0)
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int Count(int input, int flag)
//{
//	int DAY = 0;
//	if (flag == 1)
//	{
//		int YearDAY = 0;
//		int count = 0;
//		int Year = (input / 10000) ;//将input%10000得到前4位数，即为年份
//		for (int i =1; i <= Year; i++)
//		{
//			
//			if (Is_leapyear(i) == 1)
//			{
//				count += 366;
//			}
//			else
//			{
//				count += 365;
//			}
//		}
//		YearDAY = count;
//
//		int arr[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//存放闰年的月份数组
//		int month = ((input % 10000) / 100);
//		int MonthDAY = 0;
//		for (int i = 0; i < month-1; i++)
//		{
//			MonthDAY += arr[i];
//		}
//		int DayDay = input % 100;
//		DAY = YearDAY + MonthDAY + DayDay;
//	}
//	if (flag == 0)
//	{
//		int YearDAY = 0;
//		int count = 0;
//		int Year = (input / 10000);//将input%10000得到前4位数，即为年份
//		for (int i = 1; i <= Year; i++)
//		{
//			
//			if (Is_leapyear(i) == 1)
//			{
//				count += 366;
//			}
//			else
//			{
//				count += 365;
//			}
//		}
//		YearDAY = count;
//		int arr[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//存放闰年的月份数组
//		int month = ((input % 10000) / 100);
//		int MonthDAY = 0;
//		for (int i = 0; i < month-1; i++)
//		{
//			MonthDAY += arr[i];
//		}
//		int DayDay = input % 100;
//		DAY = YearDAY + MonthDAY + DayDay;
//	}
//	return DAY;
//}
//int main()
//{
//	int input = 0;
//	scanf("%d", &input);//输入年月日
//	int flag = Is_leapyear(input / 10000);//判断是平年还是闰年
//	int DAY=Count(input, flag);//根据平年还是闰年将input全部转化为天数
//	int DAY1 = Count(20240605, 1);//将20240605转化为天数
//	int distance = DAY1 - DAY;//计算天数差即可
//	printf("%d", distance);
//	return 0;
//}
//int Is_leapyear(int x)//判断平年还是闰年，返回对应的flag
//{
//	if (x % 4 == 0 && x % 100 != 0)
//	{
//		return 1;
//	}
//	else if (x % 400 == 0)
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//}
//int Count(int input, int flag)
//{
//	int DAY = 0;
//	if (flag == 1)
//	{
//		int YearDAY = 0;
//		int count = 0;
//		int Year = (input / 10000);//将input%10000得到前4位数，即为年份
//		for (int i = 1; i <= Year; i++)
//		{
//
//			if (Is_leapyear(i) == 1)
//			{
//				count += 366;
//			}
//			else
//			{
//				count += 365;
//			}
//		}
//		YearDAY = count;
//
//		int arr[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//存放闰年的月份数组
//		int month = ((input % 10000) / 100);
//		int MonthDAY = 0;
//		for (int i = 0; i < month; i++)
//		{
//			MonthDAY += arr[i];
//		}
//		int DayDay = input % 100;
//		DAY = YearDAY + MonthDAY + DayDay;
//	}
//	if (flag == 0)
//	{
//		int YearDAY = 0;
//		int count = 0;
//		int Year = (input / 10000);//将input%10000得到前4位数，即为年份
//		for (int i = 1; i <= Year; i++)
//		{
//
//			if (Is_leapyear(i) == 1)
//			{
//				count += 366;
//			}
//			else
//			{
//				count += 365;
//			}
//		}
//		YearDAY = count;
//		int arr[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//存放闰年的月份数组
//		int month = ((input % 10000) / 100);
//		int MonthDAY = 0;
//		for (int i = 0; i < month; i++)
//		{
//			MonthDAY += arr[i];
//		}
//		int DayDay = input % 100000;
//		DAY = YearDAY + MonthDAY + DayDay;
//	}
//	return DAY;
//}
//int main()
//{
//	int DAY1 = Count(20240607, 1);//将20240605转化为天数
//	printf("%d", DAY1);
//	return 0;
//}
//int main()
//{
//	char arr[] = "魏灿斌";
//	printf("%s", arr);
//}
//#include <stdio.h>  
//#include <ctype.h>  
//
//int count_aces(char* str) {
//	int count = 0;
//	int i = 0;
//	while (str[i] != '\0') {
//		if (tolower(str[i]) == 'a' && tolower(str[i + 1]) == 'c' && tolower(str[i + 2]) == 'e') {
//			count++;
//			i += 3;
//		}
//		//else if (str[i] != 'a' && str[i] != 'c' && str[i] != 'e') {
//			//i++;
//		//}
//		else {
//			i += 1;
//		}
//	}
//	return count;
//}
//
//int main() {
//	char str[100];
//	scanf("%[^'\n']", str);//跳过空格和逗号
//
//	int count = count_aces(str);
//
//	printf("%d\n", count);
//
//	return 0;
//}
////int main()
////{
////	char arr[10];
////	scanf("%c", arr);
////	return 0;
////}
//#include <stdio.h>
//void main()
//{
//	int i, m, n;
//	i = 5;
//	printf("before i++ i=%d\n", i);
//	m = i++;
//	printf("after i++ i=%d\n", i);
//	n = ++i;
//	printf("after ++i i=%d  m=%d  n=%d\n", i, m, n);
//}
//#include <stdio.h>
//void main()
//{
//	int a = 3;
//	printf("%d\n", a + (a -= a * a));
//}
//#include <stdio.h>
//void main()
//{
//	int i, j, m, n;
//	i = 8;
//	j = 10;
//	m = ++i;//m=9,i=9
//	n = j++;//n=10,j=11
//	printf(" % d, % d, % d, % d\n", i, j, m, n);
//}
//4、写出下面赋值表达式运算后a的值，并编写程序上机验证。设原来a = 12， n = 5。a和n 都定义为整型变量。(难度中)
//(1) a += a(2)a -= 2            (3)a *= 2 + 3
//(4)a %= (n %= 2)      (5)a /= a + a(6)a += a -= a *= a
//int main()
//{
//	int a = 12, n = 5;
//	printf("%d", a += a -= a *= a);//从右到左计算，第一步计算a=a*a=12*12=144,第二步计算a=a-a=0,第三步计算a=a+a=0,最后输出0
//	return 0;
//}
//5、设a = 2, b = 3, x = 3.5, y = 2.5，求下面表达式的值，并编程验证结果。(难度中)
//（1）(float)(a + b) / 2 + (int)x % (int)y
//（2）(float)a + b / 2 + (int)x % (int)y
//（3）(float)(a + b / 2) + (int)x % (int)y
//int main()
//{
//	int a = 2, b = 3;
//	float x = 3.5, y = 2.5;
//	printf("%f\n", (float)(a + b / 2));
//	printf("%f", (float)(a + b / 2) + (int)x % (int)y);
//	return 0;
//}
//#include <stdio.h>
//void main()
//{
//	int a = 3;
//	printf("%d\n", a + (a -= a * a));
//}
//#include <stdio.h>
//void main()
//{
//    int a, b, c, n, sum;
//    n = 126;
//    a = n / 100;
//    b = (n - a * 100) / 10;
//    c = n - 100 - b * 10;
//    sum = a + b + c;
//    printf("sum = % d", sum);
//}
//#include <stdio.h>
//void main()
//{
//    int n, d1, d2, d3, d4;
//    scanf("%d", &n);
//    d1 = n % 10;
//    d2 = (n / 10) % 10;
//    d3 = (n / 100) % 10;
//    d4 = (n / 1000) % 10;
//    printf("n:%d change to:%d%d%d%d\n",n,d1,d2,d3,d4);
//}
//9、输入两个整数，计算它们的和数，整除后的商数。
//int main()
//{
//	int a = 0, b = 0;
//	scanf("%d %d", &a, &b);
//	printf("%d\n", a + b);
//	printf("%d\n", a / b);
//	return 0;
//}
//编一个程序，将任意一个两位正整数平方后，取其百位数和十位数，构成一个新的两位整数。
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d", &a);
//	if (a >= 10 && a <= 99)
//	{
//		b = a * a;
//		int c = b / 100;
//		int d = b / 10 - c*10;
//		int e = c * 10+d;
//		printf("%d", e);
//	}
//	else
//	{
//		printf("非两位数");
//	}
//}
//#include <stdio.h>
//#include <math.h>
//void main()
//{
//	int a, b, c;
//	float d, v1, v2;
//	scanf("%d%d%d", &a, &b, &c);
//	d = b * b - 4 * a * c;
//	v1 = (-b + sqrt(d)) / 2.0;
//	v2 = (-b - sqrt(d)) / 2.0;
//	printf("%f %f", v1, v2);
//}
//2、设圆半径r = 1.5，圆柱高 h = 3，编程求圆周长，圆面积，圆球表面积，圆球体积。用scanf输入数据，
//输出计算结果，输出时要求有文字说明，取小数点后2位数字。
//#define PI 3.14159
//int main()
//{
//	float r, h;
//	scanf("%f%f", &r, &h);
//	float C = 2 * PI * r;
//	float S1 = PI * r * r;
//	float S2 = 2 * S1 + h * C;
//	float V = S1 * h;
//	printf("圆周长为%.2f 圆面积%.2f 圆柱表面积为%.2f 圆柱体积为%.2f", C, S1, S2, V);
//	return 0;
//}
//编写程序，输入三角形的三条边a，b，c，计算并打印三角形的面积S。
//#include<math.h>
//int main()
//{
//	float a, b, c, p,s;
//	scanf("%f%f%f", &a, &b, &c);
//	p = (a + b + c) / 2.0;
//	s = sqrt(p * (p - a) * (p - b) * (p - c));
//	printf("%f", s);
//	return 0;
//}
//#include <stdio.h>  
//#include <string.h>  
//#include <ctype.h>  
//
//int main() {
//    char input[100], output[100];
//    int i, j;
//    printf("请输入一段字符串：");
//    fgets(input, 100, stdin);
//    for (i = 0, j = 0; input[i] != '\0'; i++) {
//        if (isalpha(input[i])) {
//            output[j] = tolower(input[i]) == 'a' ? 'z' : (tolower(input[i]) == 'b' ? 'a' : (tolower(input[i]) - 2 * ('a' - 'z') + ('z' - 'a')));
//            j++;
//        }
//        else {
//            output[j] = input[i];
//        }
//        j++;
//    }
//
//    output[j] = '\0';
//
//    printf("输出仅英文字母被反转的字符串：%s\n", output);
//
//    return 0;
//}
//#include<stdio.h>
//
//int main()
//{
//	int num = 0;
//	scanf("%d", &num);
//	char bits[8]; //对于int类型而言，有32个字节，最好就是存入数组中
//	for (int i = 0; i < 8; i++)
//	{
//		bits[i] = num & 1; //与1就是显示它本身，此时的num是补码,把第i位存入数组
//		num = num >> i;  //num的补码  往右移i位
//	}
//	printf("补码为：");
//	for (int i = 7; i >= 0; i--)
//	{
//		printf("%hhd", bits[i]);
//	}
//	printf("\n");
//	for (int i = 0; i < 8; i++)
//	{
//		bits[i] = ~bits[i];
//	}
//	printf("原码为：");
//	for (int i = 7; i >= 0; i--)
//	{
//		printf("%hhd", bits[i]);
//	}
//}
//#include <stdio.h>  
//
//void sort(int arr[], int n, int reverse) {
//    int i, j, temp;
//
//    for (i = 0; i < n; i++) {
//        for (j = i + 1; j < n; j++) {
//            if ((reverse == 0 && arr[i] > arr[j]) || (reverse == 1 && arr[i] < arr[j])) {
//                temp = arr[i];
//                arr[i] = arr[j];
//                arr[j] = temp;
//            }
//        }
//    }
//}
//
//int main() {
//    int n, i, reverse = 0, arr[20];
//    
//    // 读取排序方式（是否逆序）  
//    scanf("%d", &reverse);
//
//    // 读取数字个数  
//    scanf("%d", &n);
//
//    // 读取数字  
//    for (i = 0; i < n; i++) {
//        scanf("%d", &arr[i]);
//    }
//
//   
//    // 根据排序方式进行排序  
//    sort(arr, n, reverse);
//
//    // 输出排序后的数字  
//    for (i = 0; i < n; i++) {
//        printf("%d ", arr[i]);
//    }
//
//    return 0;
//}

//int main()
//{
//	printf("%d", ((-4) >> 3) & 1);
//	return 0;
//}
//#include <stdio.h>
//
//int main() {
//    int num = -4; // 要打印原码的整数
//
//    // 打印原码
//    printf("原码：");
//    for (int i = 7; i >= 0; i--) {
//        int bit = (num >> i) & 1;
//        printf("%d", bit);
//    }
//    printf("\n");
//
//    return 0;
//}
//int main() {
//    int num = -4; // The number for which you want to print the sign-and-magnitude representation
//
//    // Check the sign
//    if (num < 0) {
//        printf("原码：1"); // Print the sign bit for negative numbers
//    }
//    else {
//        printf("原码：0"); // Print the sign bit for positive numbers
//    }
//
//    // Print the magnitude
//    for (int i = 6; i >= 0; i--) {
//        int bit = (num >> i) & 1;
//        printf("%d", bit);
//    }
//    printf("\n");
//
//    return 0;
//}
//#include <stdio.h>
//
//int main() {
//    int num = -4; // 要打印原码的整数
//
//    // 检查符号
//    if (num < 0) {
//        printf("原码：1"); // 打印负数的符号位为1
//        num = -num; // 获取绝对值
//    }
//    else {
//        printf("原码：0"); // 打印正数的符号位为0
//    }
//
//    // 打印绝对值的二进制表示
//    for (int i = 6; i >= 0; i--) {
//        int bit = (num >> i) & 1;
//        printf("%d", bit);
//    }
//    printf("\n");
//
//    return 0;
//}
//void Addcode(char* str, int n)
//{
//	if ((n) > 0)
//	{
//		if (str[n] == '0')
//		{
//			str[n] = '1';
//			return;
//		}
//		else
//		{
//			str[n] = '0';
//			Addcode(str, n - 1);
//		}
//	}
//}
//int main()
//{
//	int a = 0;
//	scanf("%d", &a);
//	char Complement[8];//补码
//	int j = 0;
//	for (int i = 7; i >= 0; i--)
//	{
//		Complement[i] = ((a >> j) & 1) + '0';
//		j++;
//	}
//	char RETInverse[8];//将原码取反
//	for (int i = 0; i < 8; i++)
//	{
//		if (Complement[i] == '1')
//		{
//			RETInverse[i] = '0';
//		}
//		else
//		{
//			RETInverse[i] = '1';
//		}
//	}
//	RETInverse[0] = Complement[0];//符号位不变
//	char source[9] = { 0 };//原码
//	for (int i = 0; i < 8; i++)
//	{
//		source[i] = RETInverse[i];
//	}
//	Addcode(&source,7);//实现二进制+1操作
//	source[0] = '1';
//	char Inverse[8];//反码
//	for (int i = 0; i < 8; i++)
//	{
//		if (source[i] == '1')
//		{
//			Inverse[i] = '0';
//		}
//		else
//		{
//			Inverse[i] = '1';
//		}
//	}
//	Inverse[0] = source[0];//符号位不变
//	if (a >= 0)//原码反码补码相同
//	{
//		for (int r = 0; r < 3; r++)
//		{
//			 for (int i = 0; i < 8; i++)
//			{
//				printf("%c", Complement[i]);
//			}
//			 printf("\n");
//		}
//	}
//	if (a < 0)
//	{
//		printf("原码为\n：");
//		for (int i = 0; i < 8; i++)
//		{
//			printf("%c", source[i]);
//		}
//		printf("\n");
//		printf("反码为\n：");
//		for (int i = 0; i < 8; i++)
//		{
//			printf("%c", Inverse[i]);
//		}
//		printf("\n");
//		printf("补码为\n：");
//		for (int i = 0; i < 8; i++)
//		{
//			printf("%c", Complement[i]);
//		}
//		
//	}
//	return 0;
//}
//int main()
//{
//	printf("%d", ((-4 >> 2) % 2) & 1);
//	return 0;
//
//}
//已知一个并联电路（如图所示）。如果两端电压U = 220V，R1 = R2 = 10kΩ, R3 = R4 = 200kΩ, 求i1, i2, i3, i4及总电阻R。(难度中)
//计算公式如下：  1 / R = 1 / R1 + 1 / R2 + 1 / R3 + 1 / R4
//i1 = U / R1, i2 = U / R2, i3 = U / R3; i4 = U / R4
//int main()
//{
//	float U = 220.0, R1 = 10000.0, R2 = 10000.0, R3 = 200000.0, R4 = 200000.0;
//	float i1, i2, i3, i4,R;
//	R = (R1 * R2 * R3 * R4) / (R1 + R2 + R3 + R4);
//	i1 = U / R1;
//	i2 = U / R2;
//	i3 = U / R3;
//	i4 = U / R4;
//	printf("R=%f\ni1=%f\ni2=%f\ni3=%f\ni4=%f\n", R, i1, i2, i3, i4);
//	return 0;
//}
//编写一个程序，该程序要求用户输入天数，然后将该值转换为周数和天数，例如，此程序将把18天转换成2周4天。用下面格式显示结果。（难度中）
//int main()
//{
//	int days = 0;
//	scanf("%d", &days);
//	int weeks = days / 7;
//	int Days = days % 7;
//	printf("此程序将把%d天转换成%d周%d天", days, weeks,Days);
//	return 0;
//}
//把程序看成是一个计算如果你第一天得到$1，第二天得到$2，第三天得到$3，以此类推，你在20天里会挣多少钱的程序）。
//修改该程序，目的是你能交互地告诉程序计算将进行到哪里。也就是说，用一个读入的变量来代替20。(难度高)
//int main()
//{
//	int day = 0;
//	scanf("%d", &day);
//	int sum = 0;
//	for (int i = 1; i <=day; i++)
//	{
//		sum += i;
//	}
//	printf("你在%d天里会挣$%d", day, sum);
//	return 0;
//}
//编写一个程序，该程序要求输入一个float型数，并打印该数的立方值。
//使用自己设计的函数来计算该值的立方并且将它的立方打印出来。main()程序把输入的值传递给该函数。（难度高）
//float Cube(float a)
//{
//	return a * a * a;
//}
//int main()
//{
//	float a = 0;
//	scanf("%f", &a);
//	float ret = Cube(a);
//	printf("%f", ret);
//	return 0;
//}
#include<stdio.h>
#include<math.h>
//int main()
//{
//	int l=0, r=0;
//	scanf("%d %d", &l, &r);
//	for (int i = l; i <= r; i++)
//	{
//		int a = i;
//		int count = 0;
//		while (i)
//		{
//			count++;
//			i /= 10;
//		}
//		i = a;
//		int sum = 0;
//		for (int j = 0; j < count; j++)
//		{
//			sum += pow(i%10, count);
//			i /= 10;
//		}
//		i = a;
//		if (sum == i)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//	int n = 0; int x1, x2;
//	scanf("%d %d", &x1, &x2);
//	for (n = x1; n <= x2; n++) {
//		int a = n;
//		int cnt = 0;
//		int sum1 = 0;
//		while (a != 0)
//		{
//			a /= 10;
//			cnt++;
//		}
//		a = n;
//		printf("%d\n", cnt);
//		int first = 1;
//		int c = 1;
//		while (c < cnt)
//		{
//			first *= 10;
//			c++;
//		}
//		printf("%d\n", first);
//		while (first > 1)
//		{
//			int d;
//			d = a / first;
//			a %= first;
//			first /= 10;    //printf("%d\n", first);
//			int single = pow(d, cnt);
//			sum1 += single; //printf("%d\n", sum1);
//		}
//		int sum2;
//		sum2 = pow(a, cnt) + sum1; //printf("%d\n", sum2);
//		int previous = 0;
//		if (sum2 == n)
//		{
//			printf("%d\n", sum2);
//			previous = 1;
//		}
//		else if (previous == 0)
//		{
//			printf("-1");
//		}
//	}
//
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//	int previous = 0;
//	int n = 0; int x1, x2;
//	scanf("%d %d", &x1, &x2);
//	for (n = x1; n <= x2; n++) {
//		int a = n;
//		int cnt = 0;
//		int sum1 = 0;
//		while (a != 0)
//		{
//			a /= 10;
//			cnt++;
//		}
//		a = n;
//		/*printf("%d\n", cnt);*/
//		int first = 1;
//		int c = 1;
//		while (c < cnt)
//		{
//			first *= 10;
//			c++;
//		}
//		while (first > 1)
//		{
//			int d;
//			d = a / first; 
//			a %= first;
//			first /= 10;    //printf("%d\n", first);
//			int single = pow(d, cnt);
//			sum1 += single; //printf("%d\n", sum1);
//		}
//		int sum2;
//		sum2 = pow(a, cnt) + sum1; //printf("%d\n", sum2);
//		if (sum2 == n)
//		{
//			printf("%d\n", sum2);
//			previous = 1;
//		}
//	}
//	if (previous == 0)
//	{
//		printf("-1");
//	}
//
//	return 0;
//}
//#include <stdio.h>
////代码1
//void test1()
//{
//    int n = 10;
//    int m = 20;
//    int* p = &n;
//    *p = 20;
//    p = &m; //都能修改
//}
//void test2()
//{
//    //代码2
//    int n = 10;
//    int m = 20;
//    const int* p = &n;//可以修改指针变量本身，但是不能修改指针指向的内容
//    *p = 20//不能修改
//    p = &m; //能修改
//}
//void test3()
//{
//    int n = 10;
//    int m = 20;
//    int* const p = &n;//不能修改指针的指向，但是能修改指针指向的内容
//    *p = 20;//能修改
//    p = &m; //不能修改
//}
//void test4()
//{
//    int n = 10;
//    int m = 20;
//    int const* const p = &n;
//    *p = 20; //不能修改
//    p = &m; //不能修改
//}
//int main()
//{
//    //测试⽆const修饰的情况
//    test1();
//    //测试const放在*的左边情况
//    test2();
//    //测试const放在*的右边情况
//    test3();
//    //测试*的左右两边都有const
//    test4();
//    return 0;
//}
//int main()
//{
//    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//    printf("&arr[0]  =%p\n", &arr[0]);
//    printf("&arr[0]+1=%p\n", &arr[0]+1);
//    printf("arr+1    =%p\n", arr);
//    printf("arr      =%p\n", arr + 1);
//    printf("&arr     =%p\n", &arr);
//    printf("&arr+1   =%p\n", &arr + 1);
//}
//int Add(int x, int y)
//    {
//        return x + y;
//    }
//    int main()
//    {
//        int (*pf)(int x, int y) = &Add;
//        //或者int(*pf3)(int, int) = Add;
//          //接着用pf访问函数
//        //int r = (*pf)(3, 5);
//        int r = pf(3, 5);
//        printf("%d", r);
//        return 0;
//    }
//int Judge_float( float x, float y)
//{
//	int count1 = 0, count2 = 0;
//	while (x-(int)x != 0)
//	{
//		count1++;
//		x *= 10;
//	}
//	while (y - (int)y != 0)
//	{
//		count2++;
//		y *= 10;
//	}
//	if (count1 > count2)
//	{
//		return count1;
//	}
//	else
//	{
//		return count2;
//	}
//}
//#include<math.h>
//int main()
//{
//	float a, b;
//	scanf("%f%f", &a, &b);
//	int count = Judge_float(a,b);
//	if(count)
//	{
//		a *= pow(10, count);
//		b *= pow(10, count);
//	}
//	int e = a;
//	int d = b;
//	int ret = 0;
//	while (d)
//	{
//		ret = e ^ d;
//		d = (e & d) << 1;
//		e = ret;
//	}
//	int multiple = 0;
//	if (count == 0)
//	{
//		multiple = 1;
//	}
//	else
//	{
//		multiple = pow(10, count);
//	}
//	float g = e/ 1.0 /multiple ;
//	printf("%f", g);
//}
/*
位运算实现加减乘除
*/
//#include <stdio.h>
////加法函数
//int add(int a, int b)
//{
//	int temp;
//	while (b)//当b为0时则代表没有进位了 
//	{
//		temp = a ^ b;
//		b = (a & b) << 1;
//		a = temp;
//	}
//	return a;
//}
////减法函数
//int sub(int a, int b)
//{
//	b = ~b + 1;//将b转换为其补码形式 
//	return add(a, b);
//}
////乘法函数
//int mul(int a, int b)
//{
//	int sum = 0;
//	while (b)
//	{
//		sum = add(sum, a);
//		b--;
//	}
//	return sum;
//}
////除法函数
//int division(int a, int b)
//{
//	int result = 0;
//	if (a == 0)
//	{
//		return 0;
//	}
//	while (1)
//	{
//		if (a > mul(a, result))
//		{
//			break;
//		}
//		result++;
//	}
//	return result - 1;
//}
//int main()
//{
//
//	int a, b, c;
//	scanf("%d%d", &a, &b);
//	//测试加法函数
//	/*c = add(a, b);
//	printf("%d\n", c);*/
//	//测试减法函数 
//	c = sub(a, b);
//	printf("%d\n", c);
//	//测试乘法函数
//	/*c = mul(a, b);
//	printf("%d\n", c);*/
//	//测试除法函数
//	/*c = division(a, b);
//	printf("%d\n", c);*/
//	return 0;
//}
//int cmp_int(const void* e1, const void* e2)
//{
//    return *((int*)e1) - *((int*)e2);
//}
////写一个函数要求这个函数能够比较e1和e2两个指针指向的元素，并给出返回值，qsort对返回值的要求为：若e1>e2,则返回一个大于0的数，若e1<e2，则返回一个小于0的数
//int main()
//{
//    int arr[] = { 5,8,9,0,4,2,6,8,7 };
//    int sz = sizeof(arr) / sizeof(arr[0]);
//    qsort(arr, sz, sizeof(arr[0]), cmp_int);
//    for (int i = 0; i < sz; i++)
//    {
//        printf("%d ", arr[i]);
//    }
//    return 0;
//}
//struct Stu
//{
//    char name[20];
//    int age;
//};
//int cmp_stu_by_age(const void* e1, const void* e2)
//{
//    return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
//}
//void test()
//{
//    struct Stu s[] = { {"zhangsan",20},{"lisi",30},{"wangwu",15} };
//    int sz = sizeof(s) / sizeof(s[0]);
//    qsort(s, sz, sizeof(s[0]), cmp_stu_by_age);
//}
//int main()
//{
//    test();
//    return 0;
//}
//void bubble_sort(int arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; i < sz; j++)
//		{
//			int tmp = 0;
//			if (arr[j] > arr[j + 1])
//			{
//				tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//			}
//		}
//	}
////2.改造内部--让函数能够在比较时，比较不同的类型
//void bubble_sort(void* base, size_t sz, size_t width, int(*cmp)(const void* e1, const void* e2))
//{
//	for (int i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - 1; j++)
//		{
//			if (cmp((char*)base + j * width, (char*)base + (j + 1) * width) > 0)
//			{
//				//交换
//				Swap((char*)base + j * width, (char*)base + (j + 1) * width);
//			}
//		}
//	}
//}
//struct Stu
//{
//	char name[20];
//	int age;
//};
//int compare_int(const void* e1, const void* e2)
//{
//	return *((int*)e1) - *((int*)e2);
//}
//int compare_strcct_age(const void* e1, const void* e2)
//{
//	return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
//}
//
//int compare_strcct_name(const void* e1, const void* e2)
//{
//	return (((struct Stu*)e1)->name, ((struct Stu*)e2)->name);
//}
//void _swap(void* p1, void* p2, int size)
//{
//	int i = 0;
//	for (i = 0; i < size; i++)
//	{
//		char tmp = *((char*)p1 + i);
//		*((char*)p1 + i) = *((char*)p2 + i);
//		*((char*)p2 + i) = tmp;
//	}
//}
//void bubble(void* base, int count, int size, int(*cmp)(void*, void*))
//{
//	int i = 0;
//	int j = 0;
//	for (i = 0; i < count - 1; i++)
//	{
//		for (j = 0; j < count - i - 1; j++)
//		{
//			if (cmp((char*)base + j * size, (char*)base + (j + 1) * size) > 0)
//			{
//				_swap((char*)base + j * size, (char*)base + (j + 1) * size, size);
//			}
//		}
//	}
//}
//int main()
//{
//	int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
//	//char *arr[] = {"aaaa","dddd","cccc","bbbb"};
//	int i = 0;
//	bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof(int), compare_int);
//	for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//	return 0;
////}
//#include <stdio.h>
//int main()
//{
//	char arr1[3] = { 'a', 'b', 'c' };
//	char arr2[] = "abc";
//	printf("%d\n", strlen(5));
//	printf("%d\n", strlen(arr2));
//	printf("%d\n", sizeof(arr1));
//	printf("%d\n", sizeof(arr1));
//	return 0;
//}
//int main()
//{
//	int a[] = { 1,2,3,4 };
	//printf("%d\n", sizeof(a));//16
	//printf("%d\n", sizeof(a + 0));//8
	//printf("%d\n", sizeof(*a));//4
	//printf("%d\n", sizeof(a + 1));//8或者4
	//printf("%d\n", sizeof(a[1]));//4
	//printf("%d\n", sizeof(&a));//8或者4
	//printf("%d\n", sizeof(*&a));//16
	//printf("%d\n", sizeof(&a + 1));//8或者4
	//printf("%d\n", sizeof(&a[0]));//8或4
	//printf("%d\n", sizeof(&a[0] + 1));//8或4
	//char arr[] = { 'a','b','c','d','e','f' };
	//printf("%d\n", sizeof(arr));//6
	//printf("%d\n", sizeof(arr + 0));//8或者4
	//printf("%d\n", sizeof(*arr));//1
	//printf("%d\n", sizeof(arr[1]));//1
	//printf("%d\n", sizeof(&arr));//8或者4
	//printf("%d\n", sizeof(&arr + 1));//8或者4
	//printf("%d\n", sizeof(&arr[0] + 1));//8或者4
//	char arr[] = { 'a','b','c','d','e','f' };
//	/*printf("%d\n", strlen(arr));
//	printf("%d\n", strlen(arr + 0));*/
//	//printf("%d\n", strlen(*arr));
//	//printf("%d\n", strlen(arr[1]));
//	printf("%d\n", strlen(&arr));
//	printf("%d\n", strlen(&arr + 1));
//	printf("%d\n", strlen(&arr[0] + 1));
//}
//int main()
//{
	/*char arr[] = { 'a','b','c','d','e','f' };*/
	//printf("%d\n", strlen(arr));//随机数
	//printf("%d\n", strlen(arr + 0));//随机数
	////printf("%d\n", strlen(*arr));//非地址
	////printf("%d\n", strlen(arr[1]));//非地址
	//printf("%d\n", strlen(&arr));//随机值
	//printf("%d\n", strlen(&arr + 1));//随机值
	//printf("%d\n", strlen(&arr[0] + 1));//随机值
	//char arr[] = "abcdef";
	//printf("%d\n", sizeof(arr));//7
	//printf("%d\n", sizeof(arr + 0));//8或者4
	//printf("%d\n", sizeof(*arr));//1
	//printf("%d\n", sizeof(arr[1]));//1
	//printf("%d\n", sizeof(&arr));//8或者4
	//printf("%d\n", sizeof(&arr + 1));//8或者4
	//printf("%d\n", sizeof(&arr[0] + 1));//8或者4
	//return 0;
	//char arr[] = "abcdef";
	//printf("%d\n", strlen(arr));//6
	//printf("%d\n", strlen(arr + 0));//6
	////printf("%d\n", strlen(*arr));//非地址
	////printf("%d\n", strlen(arr[1]));//非地址
	//printf("%d\n", strlen(&arr));//6
	//printf("%d\n", strlen(&arr + 1));//随机值
	//printf("%d\n", strlen(&arr[0] + 1));//5
	//char* p = "abcdef";
	//printf("%d\n", sizeof(p));//6
	//printf("%d\n", sizeof(p + 1));//5
	//printf("%d\n", sizeof(*p));//非地址
	//printf("%d\n", sizeof(p[0]));//非地址
	//printf("%d\n", sizeof(&p));//8？？
	//printf("%d\n", sizeof(&p + 1));//8
	//printf("%d\n", sizeof(&p[0] + 1));//5
	//char* p = "abcdef";
	//printf("%d\n", sizeof(p));//8或4
	//printf("%d\n", sizeof(p + 1));//8或4
	//printf("%d\n", sizeof(*p));//1
	//printf("%d\n", sizeof(p[0]));//1
	//printf("%d\n", sizeof(&p));//8或4
	//printf("%d\n", sizeof(&p + 1));//8或1
	//printf("%d\n", sizeof(&p[0] + 1));//8或4
	//char* p = "abcdef";
	//printf("%d\n", strlen(p));//6
	//printf("%d\n", strlen(p + 1));//5
	////printf("%d\n", strlen(*p));//非地址
	////printf("%d\n", strlen(p[0]));//非地址
	//printf("%d\n", strlen(&p));//6
	//printf("%d\n", strlen(&p + 1));//随机值
	//printf("%d\n", strlen(&p[0] + 1));//5
//	int a[3][4] = { 0 };
//	printf("%d\n", sizeof(a));//48
//	printf("%d\n", sizeof(a[0][0]));//4
//	printf("%d\n", sizeof(a[0]));//16
//	printf("%d\n", sizeof(a[0] + 1));//8
//	printf("%d\n", sizeof(*(a[0] + 1)));//4
//	printf("%d\n", sizeof(a + 1));//8或4
//	printf("%d\n", sizeof(*(a + 1)));//16
//	printf("%d\n", sizeof(&a[0] + 1));//8或4
//	printf("%d\n", sizeof(*(&a[0] + 1)));//16
//	printf("%d\n", sizeof(*a));//16
//	printf("%d\n", sizeof(a[3]));//16
//}
 /*#include<stdio.h>
#include<string.h>
int countdecimalplaces(float num)
{
	char str[100];
	snprintf(str, sizeof(str), "%f", num);
	char* decimalpoint = strchr(str, '.');
	if (decimalpoint != NULL)
	{
		return strlen(decimalpoint + 1);
	}
	return 0;
}*/

//int main()
//{
//	float floatvalue = 3.14;
//	int decimalplaces = countdecimalplaces(floatvalue);
//	printf("%d\n", decimalplaces);
//
//	return 0;
//}
//#include<stdio.h>
//#include<string.h>
//
//int countdecimalplaces(float num)
//{
//	char str[500];
//	snprintf(str, sizeof(str), "%f", num);
//
//	char* decimalpoint = strchr(str, '.');
//
//	if (decimalpoint != NULL)
//	{
//		
//		return strlen(decimalpoint + 1);
//	}
//	return 0;
//}
//
//int main()
//{
//	float floatvalue = 3.14;
//	int decimalplaces = countdecimalplaces(floatvalue);
//	printf("%d\n", decimalplaces);
//
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int a[5] = { 1, 2, 3, 4, 5 };
//	int* ptr = (int*)(&a + 1);
//	printf("%d,%d", *(a + 1), *(ptr - 1));
//	return 0;
//}
//在X86环境下
//假设结构体的⼤⼩是20个字节
//程序输出的结构是啥？
//struct Test
//{
//	int Num;
//	char* pcName;
//	short sDate;
//	char cha[2];
//	short sBa[4];
//}*p = (struct Test*)0x100000;
//int main()
//{
//	printf("%zd\n",sizeof(struct Test));
//	printf("%p\n", p + 0x1);
//	printf("%p\n", (unsigned long)p + 0x1);
//	printf("%p\n", (unsigned int*)p + 0x1);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int a[4] = { 1, 2, 3, 4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%x,%x", ptr1[-1], *ptr2);
//	return 0;
//}
//int main()
//{
//	char arr1[5];
//	char arr2[10];
//	scanf("%s", arr1);
//	scanf("%s", arr2);
//	printf("姓：%s,名：%s", arr1, arr2);
//	return 0;
//}
//#include<float.h>
//int main()
//{
//	float a = 1.0 / 3.0;
//	double b = 1.0 / 3.0;
//	printf("%.4f\n", a);
//	printf("%.12f\n", b);
//	printf("%.16f\n", b);
//	return 0;
//}
//int main()
//{
//	int a = 0, b = 0;
//	char arr[10] = { 0 };
//	scanf("%d %d %s", &a, &b,arr);
//	int ret = a * b;
//	int r = 0;
//	int count = 0;
//	while (arr[r])
//	{
//		if (arr[r] >= 'a' && arr[r] <= 'z')
//		{
//			arr[r] -= 32;
//		}
//		count++;
//		r++;
//	}
//	int flag = 0;
//	for (int j = 2; j < 37; j++)
//	{
//		int count1 = count;
//		int tmp = 0;
//		int i = 0;
//		while (count1)
//		{
//			if (arr[i] >= 'A' && arr[i] <= 'Z')
//			{
//				tmp += ((arr[i] - 'A') + 10) * pow(j, count1 - 1);
//				
//			}
//			else
//			{
//				tmp += (arr[i] - '0') * pow(j, count1 - 1);
//			}
//			count1--;
//			i++;
//		}
//		if (tmp == ret)
//		{
//			printf("%d", j);
//			flag = 1;
//			break;
//		}
//	}
//	if (flag == 0)
//	{
//		printf(" What's problem with you?");
//	}
//	return 0;
//}
//假设环境是x86环境，程序输出的结果是啥？
//#include <stdio.h>
//int main()
//{
//	int a[5][5];
//	int(*p)[4];
//	p = a;
//	printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//	int* ptr1 = (int*)(&aa + 1);
//	int* ptr2 = (int*)(*(aa + 1));
//	printf("%d,%d", *(ptr1 - 1), *(ptr2 - 1));
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	char* a[] = { "work","at","alibaba" };
//	char** pa = a;
//	pa++;
//	printf("%s\n", *pa);
//	return 0;
//}
//#include <stdio.h>
//int main()
//{
//	char* c[] = { "ENTER","NEW","POINT","FIRST" };
//	char** cp[] = { c + 3,c + 2,c + 1,c };
//	char*** cpp = cp;
//	printf("%s\n", **++cpp);//point
//	printf("%s\n", *-- * ++cpp + 3);//new
//	printf("%s\n", *cpp[-2] + 3);//point
//	printf("%s\n", cpp[-1][-1] + 1);//
//	return 0;
//}
//#include <stdio.h>
//void main()
//{
//	char c1, c2;
//	c1 = 97;
//	c2 = 'b';
//	printf("c1=%c c2=%c", c1, c2);
//}
//int main()
//{
//	int a = 0, b = 0;
//	scanf("%d %d", &a, &b);
//	printf("交换前a=%d b=%d\n", a, b);
//	int ret = 0;
//	ret = a;
//	a = b;
//	b = ret;
//	printf("交换后a=%d b=%d\n", a, b);
//	return 0;
//}
//#define PI 3.14159
//int main()
//{
//	float r = 0;
//	scanf("%f", &r);
//	float s = PI * r * r;
//	float c = 2 * PI * r;
//	printf("圆的面积为%f\n", s);
//	printf("圆的周长为%f\n", c);
//	return 0;
//}
//int main()
//{
//	int year, month, day;
//	printf("请输入年 月 日\n");
//	scanf("%d %d %d", &year, &month, &day);
//	printf("%d|%d|%d", year,month,day);
//	return 0;
//	
//}
//读入摄氏温度c, 将它转换成华氏温度f输出，写出程序。已知f = (9 / 5)c + 32
//int main()
//{
//	float c = 0;
//	scanf("%f", &c);
//	float f = (9 / 5.0) * c + 32;
//	printf("%f", f);
//	return 0;
//}
//#include<math.h>
//int main()
//{
//	float a = 0, b = 0;
//	scanf("%f %f", &a, &b);
//	printf("%f", sqrt(a * a + b * b));
//
//	return 0;
//}
/*#include<math.h>
int main()
{
	float a, b, c;
	scanf("%f%f%f", &a, &b, &c);
	if (a + b > c || b + c > a || a + c > b)
	{
		float s = (a + b + c) / 2.0;
		printf("%f", sqrt(s * (s - a) * (s - b) * (s - c)));
	}
	return 0;
}*/
//void GetMemory(char** p, int num)
//{
//	*p = (char*)malloc(num);
//}
//void Test(void)
//{
//	char* str = NULL;
//	GetMemory(&str, 100);
//	strcpy(str, "hello");
//	printf(str);
//}
//int main()
//{
//	Test();
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	int* p = &a;
//	scanf("%d", p);
//	printf("%d", a);
//	return 0;
//}
//#include<stdio.h>
//#define pi 3.141592
//int main()
//{
//	float a, b, c;
//	scanf("%f", &b);
//	a = b * b * pi;
//	c = 2 * pi * b;
//	printf("%f %f", a, c);
//	return 0;
//}